package Modelo;

import java.sql.SQLException;

import DAO.ClienteCnpjDAO;
import DAO.ClienteCpfDAO;

public class Cliente {
	
	//
	// ATRIBUTOS
	//
	private String nome;
	private String cpf;
	private String cnpj;
	private String rg;
	private String idade;
	private String telefone;
	private String email;
	private String dataNasc;
	private String sexo;
	private String numHab;
	private String numReg;
	private String estadoEmi;
	private String validadeHab;
	private int tipoPesquisa;
	private ClienteCpfDAO vdao;
	private ClienteCnpjDAO vdao2;

	//
	// CONSTRUTORES
	//
	public Cliente() {

	}

	public Cliente(String nome, String cpf, String rg, String idade,
			String telefone, String email, String data, String sexo,
			String numHab, String numReg, String estadoEmi, String valiCar) {
		this.nome = nome;
		this.cpf = cpf;
		this.rg = rg;
		this.telefone = telefone;
		this.email = email;
		this.dataNasc = data;
		this.sexo = sexo;
		this.numHab = numHab;
		this.numReg = numReg;
		this.estadoEmi = estadoEmi;
		this.validadeHab = valiCar;
	}

	public Cliente(String nome, String cnpj, String telefone, String email,
			String numHab, String numReg, String estadoEmi, String valiCar) {
		this.nome = nome;
		this.cnpj = cnpj;
		this.telefone = telefone;
		this.email = email;
		this.numHab = numHab;
		this.numReg = numReg;
		this.estadoEmi = estadoEmi;
		this.validadeHab = valiCar;
	}

	public Cliente(String nome, String cpf, String rg, int idade,
			String telefone, String email, String data, String sexo,
			String numHab, String numReg, String estadoEmi, String valiCar, int tipo) {
		this.nome = nome;
		this.cpf = cpf;
		this.rg = rg;
		this.telefone = telefone;
		this.email = email;
		this.dataNasc = data;
		this.sexo = sexo;
		this.numHab = numHab;
		this.numReg = numReg;
		this.estadoEmi = estadoEmi;
		this.validadeHab = valiCar;
		this.tipoPesquisa = tipo;
	}

	public Cliente(String nome, String cnpj, String idade, String telefone,
			String email, String numHab, String numReg, String estadoEmi,
			String valiCar, int tipo) {
		this.nome = nome;
		this.cnpj = cnpj;
		this.telefone = telefone;
		this.email = email;
		this.numHab = numHab;
		this.numReg = numReg;
		this.estadoEmi = estadoEmi;
		this.validadeHab = valiCar;
		this.tipoPesquisa = tipo;
	}

	//
	// GET/SET
	//
	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getCpf() {
		return cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}

	public String getCnpj() {
		return cnpj;
	}

	public void setCnpj(String cnpj) {
		this.cnpj = cnpj;
	}

	public String getRg() {
		return rg;
	}

	public void setRg(String rg) {
		this.rg = rg;
	}

	public String getIdade() {
		return idade;
	}

	public void setIdade(String idade) {
		this.idade = idade;
	}

	public String getTelefone() {
		return telefone;
	}

	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getDataNasc() {
		return dataNasc;
	}

	public void setDataNasc(String data) {
		this.dataNasc = data;
	}

	public String getSexo() {
		return sexo;
	}

	public void setSexo(String sexo) {
		this.sexo = sexo;
	}

	public String getNumHab() {
		return numHab;
	}

	public void setNumHab(String numHab) {
		this.numHab = numHab;
	}

	public String getNumReg() {
		return numReg;
	}

	public void setNumReg(String numReg) {
		this.numReg = numReg;
	}

	public String getEstadoEmi() {
		return estadoEmi;
	}

	public void setEstadoEmi(String estadoEmi) {
		this.estadoEmi = estadoEmi;
	}

	public String getValidadeHab() {
		return validadeHab;
	}

	public void setValidadeHab(String validadeHab) {
		this.validadeHab = validadeHab;
	}

	public int getTipoPesquisa() {
		return tipoPesquisa;
	}

	public void setTipoPesquisa(int tipoPesquisa) {
		this.tipoPesquisa = tipoPesquisa;
	}
	//METODOS PARA O DAO CPF
	public boolean adicionarCpf() throws SQLException {
		return vdao.adicionar(this);
	}
	public Cliente pesquisarCpf() throws SQLException {
		return vdao.pesquisar(this);
	}
	public boolean alteraCpf() throws SQLException {
		return vdao.altera(this);
	}
	public boolean removerCpf() throws SQLException {
		return vdao.remover(this);
	}
	public boolean validaCpf()throws SQLException{
		return vdao.validaCPF(this.getCpf());
	}
	
	//METODOS PARA O DAO CNPJ
	public boolean adicionarCnpj() throws SQLException {
		return vdao2.adicionar(this);
	}
	public Cliente pesquisarCnpj() throws SQLException {
		return vdao2.pesquisar(this);
	}
	public boolean alteraCnpj() throws SQLException {
		return vdao2.altera(this);
	}
	public boolean removerCnpj() throws SQLException {
		return vdao2.remover(this);
	}
	public boolean validaCnpj()throws SQLException{
		return vdao2.validarCNPJ(this.getCnpj());
	}
}
